package com.gqj.elec.service;

import com.gqj.elec.domain.ElecMaterialOutdetail;
import org.springframework.transaction.annotation.Transactional;

import java.util.List;

/**
 * 物资出库详情Service接口
 *
 * @author lxq
 * @date 2023-12-17
 */
public interface IElecMaterialOutdetailService {
    /**
     * 查询物资出库详情
     *
     * @param outdetailId 物资出库详情主键
     * @return 物资出库详情
     */
    public ElecMaterialOutdetail selectElecMaterialOutdetailByOutdetailId(Long outdetailId);

    /**
     * 查询物资出库详情列表
     *
     * @param elecMaterialOutdetail 物资出库详情
     * @return 物资出库详情集合
     */
    public List<ElecMaterialOutdetail> selectElecMaterialOutdetailList(ElecMaterialOutdetail elecMaterialOutdetail);

    /**
     * 新增物资出库详情
     *
     * @param elecMaterialOutdetail 物资出库详情
     * @return 结果
     */
    public int insertElecMaterialOutdetail(ElecMaterialOutdetail elecMaterialOutdetail);

    /**
     * 修改物资出库详情
     *
     * @param elecMaterialOutdetail 物资出库详情
     * @return 结果
     */
    public int updateElecMaterialOutdetail(ElecMaterialOutdetail elecMaterialOutdetail);

    /**
     * 批量删除物资出库详情
     *
     * @param outdetailIds 需要删除的物资出库详情主键集合
     * @return 结果
     */
    public int deleteElecMaterialOutdetailByOutdetailIds(Long[] outdetailIds);

    /**
     * 删除物资出库详情信息
     *
     * @param outdetailId 物资出库详情主键
     * @return 结果
     */
    public int deleteElecMaterialOutdetailByOutdetailId(Long outdetailId);

    /**
     * 执行物资出库
     *
     * @param elecMaterialOutdetailList 物资出库详情集合
     * @return 结果
     */
    public int elecMaterialOutStorage(List<ElecMaterialOutdetail> elecMaterialOutdetailList);

    /**
     * 执行物资出库
     *
     * @param elecMaterialOutdetailList 物资出库详情集合
     * @return 结果
     */
    public int elecMaterialReturnStorage(List<ElecMaterialOutdetail> elecMaterialOutdetailList);

    /**
     * 处理设备返回的标签数据
     **/
    public int analysisTdm(String etc, int port);

    /**
     * 处理通道门识别的物资信息
     **/
    public int detailMaterialInfo(ElecMaterialOutdetail elecMaterialOutdetail);

}
